

/**
 * TimeSpace组件内所有的事件回调容器
 */
const EventContainer = {
	
	
	// 监听的回调
	_callbacks: {},
	
	/**
	 * 监听事件
	 * @param {Object} event 事件名称 "move"
	 * @param {Object} callback 回调事件
	 */
	addListener(event, callback){
		let temp = this._callbacks[event];
		if(!temp){
			temp = [];
			this._callbacks[event] = temp;
		}
		temp.push(callback);
	},
	
	/**
	 * 移除监听
	 * @param {Object} event 事件名称 "move"
	 * @param {Object} callback 回调事件
	 */
	removeListner(event, callback){
		let temp = this._callbacks[event];
		if(!temp){
			temp = [];
			this._callbacks[event] = temp;
		}
		for(i in temp){
			const callbackItem = temp[i];
			if(callbackItem == callback){
				temp.splice(i, 1)
				return;
			}
		}
	},
	
	/**
	 * 抛出事件
	 * @param {Object} event  事件字符串
	 * @param {Object} eventModel   事件所带的对象信息
	 */
	post(event, eventModel){
		let temp = this._callbacks[event];
		if(temp){
			// 回调距离
			for(let i in temp){
				temp[i](eventModel);
			} 
		}
	}
	
}

export default EventContainer;